home *** CD-ROM | disk | FTP | other *** search
- <!--
- Copyright 2002-2003, Adobe Systems Incorporated
- All Rights Reserved.
-
- NOTICE: All information contained herein is, and remains the property
- of Adobe Systems Incorporated and its suppliers, if any. The
- intellectual and technical concepts contained herein are proprietary
- to Adobe Systems Incorporated and its suppliers and may be covered by
- U.S. and Foreign Patents, patents in process, and are protected by
- trade secret or copyright law. Dissemination of this information or
- reproduction of this material is strictly forbidden unless prior
- written permission is obtained from Adobe Systems Incorporated.
- --><svg onload="on_load()" overflow="visible" id="VCRRoot" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/4.0/" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid meet" zoomAndPan="magnify">
- <metadata>
- <vcrControl vcrControlID="comp.adobe.jupiter.vcrcontrol.slideshow">
- <!-- name of the vcrcontrol - internationalize with switch/systemLanguage -->
- <vcrControlName>SlideshowVCRControl</vcrControlName>
- <thumbnail xlink:href="vcrcontrol.jpg"/>
- </vcrControl>
- </metadata>
-
- <cursor id="NoCursor" x="8" y="8" width="16" height="16">
- </cursor>
-
- <rect id="EventCatcher" fill="none" stroke="none" x="-3000" y="-3000" width="10000" height="10000" pointer-events="all"/>
-
- <script id="BootStrap"><![CDATA[
-
- var isMac = false;
- var ControlBar;
- var ControlBg;
- var EventCatcher;
- var bMouseDown = false;
- var bPaused = false;
- var bMoveSlider = false;
- var lastX;
- var lastY;
- var ButtonQuit;
- var ButtonClose;
- var ButtonFirst;
- var ButtonPrev;
- var ButtonNext;
- var ButtonLast;
- var ButtonPause;
- var ButtonPlay;
- var ProgressBar;
- var PauseSymbol;
- var PlaySymbol;
- var curPage = 0;
- var progressBarScale;
- // var TransElement;
- // var initialTransType
- var FactoryControl;
- var FactoryCommand;
- var bButtonPressed
- var timeoutID;
- var HideTimeout;
- var VCRRoot;
- var VCRControlsJustDisappeared = false;
- var bMuted = false;
- var typeString = "";
- var factoryMode = false;
- var xmlnsAdobe = "http://ns.adobe.com/AdobeSVGViewerExtensions/4.0/";
- var skipPositioning = false;
-
- //-----------------------------------------------------------------------------
- function setupButtonAnim(button,index)
- {
- var bs = VCRBeginString;
- if( bs.length > 0 )
- bs += "+";
- var anim = document.createElement( "animate" );
- anim.setAttribute( "attributeName", "opacity" );
- anim.setAttribute( "values", "0.5" );
- anim.setAttribute( "fill", "remove" );
- anim.setAttribute( "begin" ,bs+pageTimes[index]+"s" );
- anim.setAttribute( "end" ,bs+(pageTimes.length>index+1?pageTimes[index+1]:totalDuration)+"s" );
- button.appendChild( anim );
- }
- //-----------------------------------------------------------------------------
- function on_load()
- {
- if( typeof navigator != 'undefined' )
- isMac = (navigator.platform == "MacOS");
-
- if( typeof totalDuration == 'undefined' )
- {
- // help with testing
- totalDuration = 20;
- pageTimes = [ 0, 5, 10, 15 ];
- pageTransitions = [];
- pageElems = [];
- VCRBeginString = "";
- VCRControlVisible = true;
- transitionDuration = 1;
- AutoRepeat = true;
- startDocumentPaused = false;
- startBGAudio = false;
- docStartTime = 0;
- }
-
- // use totalDuration supplied by the compositionengine
- document.getElementById('ProgressBarAnimation').setAttributeNS(null,"dur",totalDuration);
-
- // use beginString supplied by the composition engine
- document.getElementById('ProgressBarAnimation').setAttributeNS(null,"begin",VCRBeginString);
-
- document.rootElement.addEventListener( "mousedown", OnMouseDown, false )
- document.rootElement.addEventListener( "mouseup", OnMouseUp, false )
- document.rootElement.addEventListener( "mousemove", OnMouseMove, false )
- document.rootElement.addEventListener( "keydown", OnKeyDown, false )
- document.rootElement.addEventListener( "SVGZoom", PositionControls, false )
- document.rootElement.addEventListener( "SVGResize", PositionControls, false )
- document.rootElement.addEventListener( "SVGScroll", PositionControls, false )
-
- // create the background canvas
-
- ControlBar = document.getElementById('ControlBar');
- ControlBg = document.getElementById('Control_Bg');
-
- if( VCRControlVisible )
- ControlBar.setAttribute( "display", "inline" );
- else
- ControlBar.setAttribute( "display", "none" );
-
- PositionControls()
-
- // TransElement = document.getElementById( "trans0" );
- // if( TransElement != null )
- // initialTransType = TransElement.getAttribute( "type" );
-
- ButtonFirst = document.getElementById('Button_First');
- ButtonPrev = document.getElementById('Button_Prev');
- ButtonPause = document.getElementById('Button_Pause');
- ButtonPlay = document.getElementById('Button_Play');
- ButtonNext = document.getElementById('Button_Next');
- ButtonLast = document.getElementById('Button_Last');
- ButtonQuit = document.getElementById('Button_Quit');
- ButtonClose = document.getElementById('Button_Close');
- ProgressBar = document.getElementById('Progress_Bar');
- ProgressGroup = document.getElementById('Progress_Group');
- FactoryControl = document.getElementById('FactoryControl');
- FactoryCommand = document.getElementById('FactoryCommand');
- EventCatcher = document.getElementById('EventCatcher');
- VCRRoot = document.getElementById('VCRRoot');
-
- // set up dasharray for progress bar from slide timings
- progressBarScale = 10.0/totalDuration;
- var dasharr = "0 " + progressBarScale*transitionDuration;
- for( var i = 1 ; i <= pageTimes.length ; i++ )
- {
- var time;
- if( i == pageTimes.length )
- time = totalDuration;
- else
- time = pageTimes[i];
- var dur = time - pageTimes[i-1]
- dasharr += " " + progressBarScale*(dur - transitionDuration) +
- " " + progressBarScale*transitionDuration
- }
- var pbtm = ProgressBar.getTransformToElement(ProgressBar.parentNode);
- var shift = document.rootElement.createSVGMatrix();
- shift.e = -progressBarScale*transitionDuration*0.5;
- pbtm = pbtm.multiply(shift);
- ProgressBar.setAttribute( "transform", m2str(pbtm) );
- ProgressBar.setAttribute( "stroke-dasharray", dasharr );
-
- setupButtonAnim( ButtonFirst, 0 );
- if( !AutoRepeat )
- setupButtonAnim( ButtonPrev, 0 );
- setupButtonAnim( ButtonLast, pageTimes.length-1 );
- if( !AutoRepeat )
- setupButtonAnim( ButtonNext, pageTimes.length-1 );
-
- if( !isMac )
- EventCatcher.setAttribute( "cursor", "url(#NoCursor)" );
-
- rootMatrix = document.rootElement.getScreenCTM();
- rootMatrixInverse = rootMatrix.inverse();
-
- if (startDocumentPaused)
- {
- TogglePaused();
- timeoutID = setTimeout( "GoToPage(0)", 10 )
- }
- // whenever pause is toggled update the controls
- var pause = contextMenu.getElementById('Pause');
- if( pause != null )
- pause.setAttribute('onactivate', "TogglePaused()");
- }
-
- function BeginBGAudio()
- {
- if (startBGAudio)
- {
- startBGAudio = false;
- var bgAudio = document.getElementById('page0audio');
- if (bgAudio != null)
- bgAudio.beginElement();
- }
- }
-
- function PositionControls()
- {
- if( skipPositioning )
- return;
- ControlBar.setAttribute( "transform", "translate(0 0)" );
- var ctm = ControlBar.getScreenCTM();
- ctm.e -= getInnerWidth() - 230;
- //ctm.f -= getInnerHeight() - 100; // lower right corner
- ctm.f += 20; // upper right corner
- var ictm = ctm.inverse();
- var scale = 0.82;
- ictm.a *= scale;
- ictm.b *= scale;
- ictm.c *= scale;
- ictm.d *= scale;
- ControlBar.setAttribute( "transform", m2str(ictm) );
- }
-
- //-----------------------------------------------------------------------------
- function OnClickButtonFirst(evt)
- {
- GoToPage(0);
- }
- //-----------------------------------------------------------------------------
- function DoPrev()
- {
- curTime = document.rootElement.getCurrentTime();
- curPage = GetCurPage();
-
- if (curPage > 0)
- curPage--;
- else if( AutoRepeat )
- curPage = pageTimes.length - 1;
-
- GoToPage(curPage);
- if( bButtonPressed )
- timeoutID = setTimeout( "DoPrev()", 500 )
- }
- //-----------------------------------------------------------------------------
- function OnClickButtonPause(evt)
- {
- TogglePaused()
- }
- function TogglePaused()
- {
- var cmd;
- if (bPaused)
- {
- cmd="document.rootElement.unpauseAnimations();setupTransitions()";
- ButtonPlay.setAttribute('display', 'none');
- ButtonPause.setAttribute('display', 'inline');
- }
- else
- {
- cmd="document.rootElement.pauseAnimations();setupTransitions(); BeginBGAudio()";
- ButtonPause.setAttribute('display', 'none');
- ButtonPlay.setAttribute('display', 'inline');
- }
- bPaused = !bPaused;
- setTimeout(cmd, 10);
- }
- //-----------------------------------------------------------------------------
- function setupTransitions()
- {
- // toggle the transition values on the animators
- if (bPaused)
- {
- var elem;
- for( var i = 0 ; i < pageElems.length ; i++ )
- {
- elem = document.getElementById(pageElems[i]);
- if (elem.hasAttributeNS(xmlnsAdobe,"transIn"))
- elem.removeAttributeNS(xmlnsAdobe,"transIn");
- }
-
- // force currently running transitions to abort
- try
- {
- skipPositioning = true;
- document.rootElement.currentTranslate.x = 1
- document.rootElement.currentTranslate.x = 0
- }
- catch( err )
- {
- }
- skipPositioning = false;
- }
- else
- {
- for( var i = 0 ; i < pageElems.length ; i++ )
- {
- document.getElementById(pageElems[i]).setAttributeNS(xmlnsAdobe,"a:transIn",pageTransitions[i]);
- }
- }
- }
- //-----------------------------------------------------------------------------
- function DoNext()
- {
- curPage = GetCurPage();
-
- if (curPage < pageTimes.length - 1)
- curPage++;
- else if( AutoRepeat )
- curPage = 0;
-
- GoToPage( curPage );
- if( bButtonPressed )
- timeoutID = setTimeout( "DoNext()", 500 )
- }
- //-----------------------------------------------------------------------------
- function OnClickButtonLast(evt)
- {
- GoToPage(pageTimes.length-1);
- }
- //-----------------------------------------------------------------------------
- function OnClickButtonQuit(evt)
- {
- close();
- }
- //-----------------------------------------------------------------------------
- function ToggleMute()
- {
- bMuted = !bMuted;
- var volume;
- if( bMuted )
- volume = "1.0";
- else
- volume = "0.0";
- var list = document.getElementsByTagName('a:audio');
- var count = list.length;
- var i;
- for(i = 0; i < count; i++)
- {
- var a = list.item(i);
- a.setAttribute( "volume", volume );
- }
- list = document.getElementsByTagName('a:video');
- count = list.length;
- for(i = 0; i < count; i++)
- {
- var a = list.item(i);
- a.setAttribute( "volume", volume );
- }
- }
- //-----------------------------------------------------------------------------
- function ToggleVCRVisibility()
- {
- VCRControlVisible = !VCRControlVisible;
- if( VCRControlVisible )
- ControlBar.setAttribute( "display", "inline" );
- else
- ControlBar.setAttribute( "display", "none" );
- }
- //-----------------------------------------------------------------------------
- function GetCurPageFromTime(curTime)
- {
- var repeatCount = Math.floor((curTime-docStartTime)/totalDuration);
- curTime = curTime - totalDuration*repeatCount;
- curPage = 1;
-
- while ( curPage < pageTimes.length && curTime >= pageTimes[curPage]/1.0 )
- {
- curPage++;
- }
-
- return curPage-1;
- }
- function GetCurPage()
- {
- curTime = document.rootElement.getCurrentTime();
- return GetCurPageFromTime(curTime);
- }
- //-----------------------------------------------------------------------------
- function GoToPage( curPage )
- {
- if (curPage < 0)
- curPage = 0;
- else if (curPage >= pageTimes.length)
- curPage = pageTimes.length - 1;
-
- setVidLink(curPage);
- GoToTime( pageTimes[curPage] );
- }
-
- //-----------------------------------------------------------------------------
- function GoToTime( newTime)
- {
- var reqTime = newTime;
- var curTime = document.rootElement.getCurrentTime();
- var repeatCount = Math.floor((curTime-docStartTime)/totalDuration);
- if (repeatCount < 0 || !AutoRepeat)
- repeatCount = 0.0;
- newTime = newTime + repeatCount * totalDuration + docStartTime;
- // watch out for roundoff error in SVGCore
- if (bPaused)
- newTime += .001;
- // alert("reqTime = " + reqTime + "curTime = " + curTime + " newTime = " + newTime);
- document.rootElement.setCurrentTime( newTime );
- }
- //-----------------------------------------------------------------------------
- function GoToDocTime( newTime)
- {
- var newPage = GetCurPageFromTime(newTime);
- setVidLink(newPage);
- GoToTime(newTime);
- }
- //-----------------------------------------------------------------------------
- function OnKeyPress(evt)
- {
- if( evt.charCode < 32 )
- {
- if( evt.charCode == 13 ) // enter
- {
- FactoryCommand.setAttribute("fill","green")
- var txt = FactoryCommand.firstChild;
- txt.data = "Result: " + eval( txt.data );
- }
- return;
- }
- var txt = FactoryCommand.firstChild
- if( FactoryCommand.getAttribute("fill") != "black" )
- {
- txt.data = "";
- FactoryCommand.setAttribute( "fill", "black" );
- }
- txt.data += String.fromCharCode(evt.charCode)
- }
-
- //-----------------------------------------------------------------------------
- function OnKeyDown(evt)
- {
- var code = evt.keyCode;
- if( typeString.length > 0 && !factoryMode )
- {
- var secretString = "JUPITER";
- typeString += String.fromCharCode(code);
- if( typeString.length >= secretString.length )
- {
- if( typeString == secretString )
- {
- factoryMode = true
- FactoryControl.setAttribute( "display", "inline" );
- setTimeout( 'document.rootElement.addEventListener( "keypress", OnKeyPress, false )', 2 );
- }
- else
- typeString = "";
- }
- }
- if( code == 37 || code == 38 || code == 33 ) // left, up, PgUp
- DoPrev();
- else if( code == 39 || code == 40 || code == 34 ) // right, down, PgDn
- DoNext();
- else if( code == 36 ) // home
- OnClickButtonFirst();
- else if( code == 35 ) // end
- OnClickButtonLast();
- else if( code == 8 && !factoryMode) // backspace
- DoPrev();
- else if( code == 32 )
- OnClickButtonPause();
- else if( code == 77 ) // 'M'
- ToggleMute();
- else if( code == 86 ) // 'V'
- ToggleVCRVisibility();
- else if( code == 65 && typeString.length == 0 )
- typeString = "A";
- else if( factoryMode && FactoryCommand.getAttribute("fill") == "black" )
- {
- if( code == 8 || code == 127 ) // BS and DEL
- {
- var txt = FactoryCommand.firstChild;
- if( txt.data.length >= 1 )
- txt.deleteData( txt.data.length-1, 1 );
- }
- }
- }
-
- //-----------------------------------------------------------------------------
- function OnMouseDown(evt)
- {
- var obj = evt.target
-
- if( obj.nodeName == null ) // SVGElementInstance
- return;
-
- if( obj.getNodeName() != 'path' || obj.parentNode.getNodeName() != 'g' )
- return;
-
- obj = obj.parentNode;
-
- // see if they pushed one of the buttons...
- if (obj == ButtonQuit)
- {
- OnClickButtonQuit(evt);
- return;
- }
- else if (obj == ButtonFirst)
- {
- bButtonPressed = true
- ButtonFirst.setAttribute( "filter", "url(#PushedButton)" );
- OnClickButtonFirst(evt);
- return;
- }
- else if (obj == ButtonPrev)
- {
- CatchAllEvents(true,"default");
- bButtonPressed = true
- ButtonPrev.setAttribute( "filter", "url(#PushedButton)" );
- DoPrev();
- return;
- }
- else if (obj == ButtonPause || obj == ButtonPlay)
- {
- OnClickButtonPause(evt);
- return;
- }
- else if( obj == ButtonClose )
- {
- VCRControlsJustDisappeared = true;
- setTimeout( "VCRControlsJustDisappeared=false", 1000 );
- ControlBar.setAttribute( "display", "none" );
- VCRControlVisible = false;
- return;
- }
- else if (obj == ButtonNext)
- {
- CatchAllEvents(true,"default")
- bButtonPressed = true
- ButtonNext.setAttribute( "filter", "url(#PushedButton)" );
- DoNext();
- return;
- }
- else if (obj == ButtonLast)
- {
- bButtonPressed = true
- ButtonLast.setAttribute( "filter", "url(#PushedButton)" );
- OnClickButtonLast(evt);
- return;
- }
-
- if (obj == ControlBar || obj == ProgressGroup )
- {
- lastX = evt.clientX;
- lastY = evt.clientY;
-
- bMouseDown = obj != ProgressGroup;
- bMoveSlider = !bMouseDown;
- document.rootElement.pauseAnimations();
- if( bMoveSlider )
- {
- lastX = -100; // force rewind
- OnMouseMove(evt);
- CatchAllEvents( true, "url(#MoveLeftRight)" );
- }
- else
- {
- CatchAllEvents( true, "move" );
- }
- }
- }
- //-----------------------------------------------------------------------------
- function CatchAllEvents(catchAll,cursor)
- {
- VCRRoot.removeChild( EventCatcher );
- if( cursor != null && !isMac )
- EventCatcher.setAttribute( "cursor", cursor );
- if( catchAll )
- VCRRoot.appendChild( EventCatcher );
- else
- VCRRoot.insertBefore( EventCatcher, VCRRoot.firstChild );
- }
- //-----------------------------------------------------------------------------
- function HideControls()
- {
- if( bMouseDown || bMoveSlider || bButtonPressed )
- {
- HideTimeout = setTimeout( 'HideTimeout=null;HideControls()', 3000 );
- }
- else
- {
- if( !VCRControlVisible )
- ControlBar.setAttribute( "display", "none" );
- if( !isMac )
- {
- EventCatcher.setAttribute( "cursor", "url(#NoCursor)" );
- // force cursor update
- var d = document.createElement("dummy");
- document.rootElement.appendChild( d );
- document.rootElement.removeChild( d );
- }
- }
- }
- //-----------------------------------------------------------------------------
- function OnMouseMove(evt)
- {
- // ignore initial mousemove events that can be spurious
- if( bPaused || document.rootElement.getCurrentTime() >= 0.2 )
- {
- if( HideTimeout != null )
- clearTimeout( HideTimeout );
- var q = evt.target;
- while( q != null && q != ControlBar )
- q = q.parentNode;
- if( q == null )
- {
- if( ! VCRControlsJustDisappeared )
- ControlBar.setAttribute( "display", "inline" );
- HideTimeout = setTimeout( 'HideTimeout=null;HideControls()', 3000 );
- if( !bMouseDown && !bMoveSlider && !isMac )
- EventCatcher.setAttribute( "cursor", "auto" );
- }
- }
- if (bMouseDown || bMoveSlider)
- {
- // convert from screen coords to SVG page coords
- var x = evt.clientX;
- var y = evt.clientY;
-
- var p = document.rootElement.createSVGPoint();
-
- // see if we have started dragging
- if ( Math.abs( lastX - x ) < 2 && (bMoveSlider || Math.abs( lastY - y ) < 2) )
- {
- //trace('Not dragging?');
- return;
- }
-
- p.x = x - lastX;
- p.y = y - lastY;
- lastX = x;
- lastY = y;
-
- if (bMouseDown)
- {
- var curMat = ControlBar.getScreenCTM();
- t = curMat.inverse();
- t.e = 0;
- t.f = 0;
- p = p.matrixTransform( t );
-
- curMat = ControlBar.getTransformToElement(ControlBar.parentNode);
- curMat = curMat.translate( p.x, p.y );
- ControlBar.setAttribute( 'transform', m2str(curMat) );
- }
- else
- {
- slMat = ProgressBar.getScreenCTM();
- s = slMat.inverse();
- p.x = x;
- p.y = y;
- p = p.matrixTransform( s );
- var time = p.x/progressBarScale;
- if( time > totalDuration - 1 )
- time = totalDuration - 1;
- GoToDocTime( time+docStartTime );
- }
- }
- }
- //-----------------------------------------------------------------------------
- function OnMouseUp(evt)
- {
- if( EventCatcher.previousSibling != null )
- CatchAllEvents( false, "auto" );
-
- if( (bMouseDown || bMoveSlider || bButtonPressed) && !bPaused)
- document.rootElement.unpauseAnimations();
-
- if( bButtonPressed )
- {
- ButtonFirst.setAttribute( "filter", "none" );
- ButtonLast.setAttribute( "filter", "none" );
- ButtonNext.setAttribute( "filter", "none" );
- ButtonPrev.setAttribute( "filter", "none" );
- bButtonPressed = false;
- if( timeoutID != null )
- clearTimeout( timeoutID );
- }
-
- if(bMouseDown)
- {
- bMouseDown = false;
- }
-
- if (bMoveSlider)
- {
- bMoveSlider = false;
- // if( TransElement != null )
- // TransElement.setAttribute( "type", initialTransType )
- }
- }
- //-----------------------------------------------------------------------------
- function m2str(m)
- {
- return "matrix(" + m.a + " " + m.b + " " + m.c + " " + m.d + " " + m.e + " " + m.f + ")"
- }
-
- //-----------------------------------------------------------------------------
- ]]></script>
-
- <!-- animation needs to be set on this element -->
- <animate id="ProgressBarAnimation" xlink:href="#Progress_Bar" attributeName="x2" dur="1s" values="0;10" restart="always" fill="freeze" accumulate="none" additive="replace" calcMode="linear"/>
-
- <cursor id="MoveLeftRight" shape-rendering="optimizeSpeed" x="8" y="8" width="16" height="16">
- <path stroke="black" fill="white" d="M0.5 8.5l5-5v3h5v-3l5 5l-5 5v-3h-5v3z"/>
- </cursor>
-
- <g display="none" id="FactoryControl">
- <rect width="600" height="20" fill="white" stroke="red"/>
- <text id="FactoryCommand" x="5" y="16" font-size="16" text-rendering="optimizeLegibility" fill="green" startOffset="0">Type your command</text>
- </g>
-
- <g id="ControlBar" display="none">
- <filter id="PushedButton">
- <feComponentTransfer>
- <feFuncR type="linear" intercept="0.25" slope="1.3"/>
- <feFuncA type="linear" intercept="0" slope="2"/>
- </feComponentTransfer>
- </filter>
- <image opacity="0.3" width="287" height="137" id="XMLID_1_" xlink:href="data:;base64, iVBORw0KGgoAAAANSUhEUgAAAR8AAACJCAYAAAAVHzynAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdH dhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAkNSURBVHjaYmYYBaNgFIyCAQAAAcQ8GgSjYBSMgoEAAAE0 WviMglEwCgYEAATQaOEzCkbBKBgQABBAo4XPKBgFo2BAAEAAjRY+o2AUjIIBAQABNFr4jIJRMAoGBAAE0G jhMwpGwSgYEAAQQKOFzygYBaNgQABAAI0WPqNgFIyCAQEAATRa+IyCUTAKBgQABNBo4TMKRsEoGBAAEECj hc8oGAWjYEAAQACNFj6jYBSMggEBAAE0WviMglEwCgYEAATQaOEzCkbBKBgQABBAo4XPKBgFo2BAAEAAjR Y+o2AUjIIBAQABNFr4jIJRMAoGBAAE0GjhMwpGwSgYEAAQQKOFzygYBaNgQABAAI0WPqNgFIyCAQEAATRa +IyCUTAKBgQABNBo4TMKRsEoGBAAEECjhc8oGAWjYEAAQACNFj6jYBSMggEBAAE0WviMglEwCgYEAATQaO EzCkbBKBgQABBAo4XPKBgFo2BAAEAAjRY+o2AUjIIBAQABNFr4jIJRMAoGBAAE0GjhMwpGwSgYEAAQQCyD 1F2MOOhRMApGAfHgPw56UACAABqMhQ+ooGGCtspgmHG0ABoFo4DkggeE/yLhf4OpAAIIoMFW+DBC3cQGxJ xAzAXE7FCx0QJoFIwC0gqeP0D8E4i/QfEvaCE0KAoggAAaTIUPrODhAGJ+IBaFYj5oAcQ8WviMglFAdOHz F1rwfADi10D8Cog/AfGPwdICAgigwVL4wLpaoBaPABDLArEyECtACyCuQdpFHAWjYLACUKvnKxC/BOK70M ob1v36NRgKH4AAGkyFDysQ8wCxBBCrArEeEKsAsRi08BmdmRsFo4C0wucLED+H9hx+QAujH1C5/wNdAAEE 0GAofNBbPTJArA7EGkCsBMSC0MBjGk1Po2AUEA1ALZzvDJCx0x9IXa8P0O7Y34F2IEAADZaWDzM0kISghY 88lBaBtoZgA86jYBSMAuLAP2iFDipkJKFYEJrPPkPz04C2fAACaLC0fGCFjyC02yUBLYi4oQE42uoZBaOA NADLM6AhC34o5hlM+QkggJgGUUCxQQMHFEh80MJotMUzCkYB+ZU6rGIH5S0OKD1o1s0BBBDTaCCNglEwrA sgJgbEol0Ye1DkKYAAYhoNpFEwCkZMK2hQ5SeAAGIaDaRRMApGwUAAgAAaHcgdBaNgFAwIAAig0cJnFIyC UTAgACCARgufUTAKRsGAAIAAGi18RsEoGAUDAgACaLTwGQWjYBQMCAAIoNHCZxSMglEwIAAggEYLn1EwCk bBgACAABotfEbBKBgFAwIAAmi08BkFo2AUDAgACKDRwmcUjIJRMCAAIIBGC59RMApGwYAAgAAaLXxGwSgY BQMCAAJotPAZBaNgFAwIAAig0cJnFIyCUTAgACCARguf UTAKRsGAAIAAGi18RsEoGAUDAgACaLTwGQWjYBQMCAAIoNHCZxSMglEwIAAggEYLn1EwCkbBgACA ABotfEbBKBgFAwIAAmi08BkFo2AUDAgACKDRwmcUjIJRMCAAIIBGC59RMApGwYAAgAAaLXxGwSgY BQMCAAJotPAZBaNgFAwIAAig0cJnFIyCUTAgACCARgufUTAKRsGAAIAAGi18RsEoGAUDAgACaLTw GQWjYBQMCAAIoNHCZxSMglEwIAAggEYLn1EwCkbBgACAABotfEbBKBgFAwIAAmi08BkFo2AUDAgA CKDRwmcUjIJRMCAAIIBGC59RMApGwYAAgAAaLXxGwSgYBQMCAAJotPAZBaNgFAwIAAig0cJnFIyC UTAgACCARgufUTAKRsGAAIAAGi18RsEoGAUDAgACaLTwGQWjYBQMCAAIoNHCZxSMglEwIAAggEYL n1EwCkbBgACAABotfEbBKBgFAwIAAmi08BkFo2AUDAgACKDRwmcUjIJRMCAAIIBGC59RMApGwYAA gAAaLXxGwSgYBQMCAAJosBU+/5HwKBgFo2AYA4AAGiyFD6iw+QfFf5HYo4XQKBgFw7RSBwggpkEU MKBC5xcQ/4DSf0dbQaNgFFClUv87GCt1gAAaLC2ff9AC5wsQfwTiT0D8HYj/jBY+o2AUkF3wwCp0 UF76BsQ/kfLUgOcrgABiGUSBBAqg90D8AopFgJgDiBmh7mQcTU+jYBSQlKdABc4HIH4NxR+hBdDf weBIgABiGSSBBSt83gHxEyB+CMQCQMwGlWMfRK20UTAKBjuA9SRABc8jIL4HzVNvoAXS38HQ8gEI oMHS8kEOLFDhwwctcEBNRDEg5gJi5tE0NQpGAdGV+TdoawdU8FyF0q+hlfygaPkABNBgafmACqDf DJAxH1CXixVaIIEKI1Fo4cMymqZGwSggCvxBKnweQgueJ9Bu1y+GQTLoDBBAg6nwQW79/IeW0C+R WkGgls/ouM8oGAWE8xKoZQMa2/kELYDeQAueQTWJAxBAgy0zwwaXQWM9nNAWDzsDYsB5tPAZBaOA cOHzH1rI/IS2gL5DK/ZBNXsMEECDMTOD3MQEbekwI7V4RgueUTAKSCuA/jKgrvEZVMtWAAJosGZo Rhz0KBgFo4D4AggbPWgAQACxDJGAGwWjYBQMMwAQQKPT16NgFIyCAQEAATRa+IyCUTAKBgQABNBo 4TMKRsEoGBAAEECjhc8oGAWjYEAAQACNFj6jYBSMggEBAAE0WviMglEwCgYEAATQaOEzCkbBKBgQ ABBAo4XPKBgFo2BAAEAAjRY+o2AUjIIBAQABNFr4jIJRMAoGBAAE0GjhMwpGwSgYEAAQQKOFzygY BaNgQABAAI0WPqNgFIyCAQEAATRa+IyCUTAKBgQABNBo4TMKRsEoGBAAEECjhc8oGAWjYEAAQACN Fj6jYBSMggEBAAE0WviMglEwCgYEAATQaOEzCkbBKBgQABBAo4XPKBgFo2BAAEAAjRY+o2AUjIIB AQABNFr4jIJRMAoGBAAE0GjhMwpGwSgYEAAQQKOFzygYBaNgQABAAI0WPqNgFIyCAQEAATRa+IyC UTAKBgQABNBo4TMKRsEoGBAAEECjhc8oGAWjYEAAQACNFj6jYBSMggEBAAE0WviMglEwCgYEAATQ aOEzCkbBKBgQABBgABhjzOGe1udtAAAAAElFTkSuQmCC" preserveAspectRatio="xMidYMid meet"/>
- <path opacity="0.6" fill="#FFFFFF" d="M248.667,92.078c0,3.454-2.006,6.256-4.48,6.256H39.147c-2.475,0-4.48-2.802-4.48-6.256 V40.591c0-3.454,2.006-6.256,4.48-6.256h205.039c2.475,0,4.48,2.802,4.48,6.256V92.078z"/>
- <path opacity="0.4" d="M55.959,34.376h-15.16c-3.454,0-6.256,2.034-6.256,4.545v54.827c0,2.511,2.802,4.545,6.256,4.545h15.16 V34.376z"/>
- <linearGradient id="XMLID_2_" gradientUnits="userSpaceOnUse" x1="96.0059" y1="33.3936" x2="226.9258" y2="128.8988">
- <stop offset="0.0056" style="stop-color:#8C8C8C"/>
- <stop offset="0.1499" style="stop-color:#676767"/>
- <stop offset="0.3228" style="stop-color:#424242"/>
- <stop offset="0.4961" style="stop-color:#252525"/>
- <stop offset="0.6676" style="stop-color:#111111"/>
- <stop offset="0.8365" style="stop-color:#040404"/>
- <stop offset="1" style="stop-color:#000000"/>
- </linearGradient>
- <path opacity="0.29" fill="url(#XMLID_2_)" a:adobe-blending-mode="multiply" d="M243.104,34.833 c3.146,0.917,3.48,3.25,3.48,6.508v49.487c0,2.849-1.594,5.256-3.48,5.256H38.064c-0.865,0-1.702-0.502-2.354-1.414l-0.627,1.164 c1.039,1.451,1.453,2.25,2.981,2.25h205.039c3.688,0.041,5.48-3.255,5.48-7.256V41.341c0-4.001-2.459-7.256-5.48-7.256V34.833z"/>
- <linearGradient id="XMLID_3_" gradientUnits="userSpaceOnUse" x1="-8.3408" y1="-40.8809" x2="251.3822" y2="145.2292">
- <stop offset="0.0056" style="stop-color:#FFFFFF"/>
- <stop offset="1" style="stop-color:#8C8C8C"/>
- </linearGradient>
- <path opacity="0.61" fill="url(#XMLID_3_)" a:adobe-blending-mode="overlay" d="M40.147,34.335c-3.021,0-5.48,3.255-5.48,7.256 v51.487c0,1.878,0.532,2.656,1.499,4.006l1.627-0.164c-0.727-1.014-1.126-2.378-1.126-3.842V41.591 c0-2.849,1.594-5.256,3.48-5.256c0,0,200.354,0,203.187,0c4.166,0,4.583,3.915,5.083,5.332c0.235,0.668,0.333-7.332-5.23-7.332 C240.25,34.335,40.147,34.335,40.147,34.335z"/>
- <path fill="none" stroke="#232323" d="M248.667,92.078c0,3.454-2.006,6.256-4.48,6.256H39.147c-2.475,0-4.48-2.802-4.48-6.256 V40.591c0-3.454,2.006-6.256,4.48-6.256h205.039c2.475,0,4.48,2.802,4.48,6.256V92.078z"/>
- <g id="Progress_Group">
- <path id="ProgressBkgd_2_" opacity="0.6" fill="#FFFFFF" stroke="#000000" d="M239.667,88.75h-174.5V81.5h174.5V88.75z"/>
- <line id="Progress_Bar" stroke="#7F9FFF" fill="none" stroke-width="1" transform="matrix(17.45 0 0 3.25 65.667 85.125)" x1="0" x2="0" y1="0" y2="0" pointer-events="none"/>
- </g>
- <g id="Button_Quit">
- <radialGradient id="XMLID_4_" cx="223.2773" cy="49.4365" r="25.3111" fx="223.2773" fy="49.4365" gradientUnits="userSpaceOnUse">
- <stop offset="0.0056" style="stop-color:#FFFFFF"/>
- <stop offset="0.0383" style="stop-color:#F8EBEA"/>
- <stop offset="0.1628" style="stop-color:#E0A49E"/>
- <stop offset="0.2739" style="stop-color:#CD6B61"/>
- <stop offset="0.3676" style="stop-color:#BF4236"/>
- <stop offset="0.4403" style="stop-color:#B6291B"/>
- <stop offset="0.4831" style="stop-color:#B32011"/>
- <stop offset="0.9382" style="stop-color:#910F05"/>
- </radialGradient>
- <path opacity="0.7" fill="url(#XMLID_4_)" stroke="#000000" d="M239.666,58.313c0,5.431-4.403,9.834-9.834,9.834 s-9.833-4.403-9.833-9.834c0-5.43,4.402-9.833,9.833-9.833S239.666,52.884,239.666,58.313z"/>
- <g opacity="0.8" pointer-events="none">
- <path fill="none" stroke="#FFFFFF" stroke-width="3" d="M224.892,63.028l4.838-4.839"/>
- <path fill="none" stroke="#FFFFFF" stroke-width="3" d="M234.57,53.352l-4.841,4.838"/>
- <path fill="none" stroke="#FFFFFF" stroke-width="3" d="M229.729,58.189l-4.838-4.838"/>
- <path fill="none" stroke="#FFFFFF" stroke-width="3" d="M229.729,58.189l4.841,4.839"/>
- </g>
- </g>
- <g id="Button_First">
- <radialGradient id="XMLID_8_" cx="68.0273" cy="49.4365" r="25.3111" fx="68.0273" fy="49.4365" gradientUnits="userSpaceOnUse">
- <stop offset="0.0056" style="stop-color:#FFFFFF"/>
- <stop offset="0.1137" style="stop-color:#D9D9D9"/>
- <stop offset="0.3443" style="stop-color:#8D8D8D"/>
- <stop offset="0.5502" style="stop-color:#505050"/>
- <stop offset="0.724" style="stop-color:#252525"/>
- <stop offset="0.8588" style="stop-color:#0A0A0A"/>
- <stop offset="0.9382" style="stop-color:#000000"/>
- </radialGradient>
- <path opacity="0.7" fill="url(#XMLID_8_)" stroke="#000000" d="M84.416,58.313c0,5.431-4.403,9.834-9.834,9.834 s-9.833-4.403-9.833-9.834c0-5.43,4.402-9.833,9.833-9.833S84.416,52.884,84.416,58.313z"/>
- <path opacity="0.8" fill="#FFFFFF" d="M72.186,58.389l3.061-2.582l3.06-2.584v5.166v5.167l-3.06-2.584L72.186,58.389z"/>
- <path opacity="0.8" fill="none" stroke="#FFFFFF" d="M71.167,53.389v10"/>
- </g>
- <g id="Button_Prev">
- <radialGradient id="XMLID_5_" cx="97.4023" cy="49.4365" r="25.3111" fx="97.4023" fy="49.4365" gradientUnits="userSpaceOnUse">
- <stop offset="0.0056" style="stop-color:#FFFFFF"/>
- <stop offset="0.1137" style="stop-color:#D9D9D9"/>
- <stop offset="0.3443" style="stop-color:#8D8D8D"/>
- <stop offset="0.5502" style="stop-color:#505050"/>
- <stop offset="0.724" style="stop-color:#252525"/>
- <stop offset="0.8588" style="stop-color:#0A0A0A"/>
- <stop offset="0.9382" style="stop-color:#000000"/>
- </radialGradient>
- <path opacity="0.7" fill="url(#XMLID_5_)" stroke="#000000" d="M113.791,58.313c0,5.431-4.403,9.834-9.834,9.834 s-9.833-4.403-9.833-9.834c0-5.43,4.402-9.833,9.833-9.833S113.791,52.884,113.791,58.313z"/>
- <path opacity="0.8" fill="#FFFFFF" d="M99.436,58.389l3.061-2.582l3.06-2.584v5.166v5.167l-3.06-2.584L99.436,58.389z"/>
- </g>
- <g id="Button_Play" display="none">
- <radialGradient id="XMLID_6_" cx="127.6104" cy="45.1484" r="37.5378" fx="127.6104" fy="45.1484" gradientUnits="userSpaceOnUse">
- <stop offset="0.0056" style="stop-color:#FFFFFF"/>
- <stop offset="0.1048" style="stop-color:#CEDABE"/>
- <stop offset="0.206" style="stop-color:#A1B982"/>
- <stop offset="0.2923" style="stop-color:#80A157"/>
- <stop offset="0.3594" style="stop-color:#6C923C"/>
- <stop offset="0.3989" style="stop-color:#648C32"/>
- <stop offset="0.9382" style="stop-color:#1F471A"/>
- </radialGradient>
- <path display="inline" opacity="0.7" fill="url(#XMLID_6_)" stroke="#000000" d="M151.916,58.313 c0,8.053-6.531,14.584-14.584,14.584c-8.055,0-14.583-6.531-14.583-14.584c0-8.052,6.528-14.583,14.583-14.583 C145.385,43.73,151.916,50.262,151.916,58.313z"/>
- <path display="inline" opacity="0.8" fill="#FFFFFF" d="M144.352,58.014l-5.207-4.395l-5.208-4.396v8.791v8.792l5.208-4.396 L144.352,58.014z"/>
- </g>
- <g id="Button_Pause">
- <radialGradient id="XMLID_7_" cx="127.6104" cy="45.1484" r="37.5378" fx="127.6104" fy="45.1484" gradientUnits="userSpaceOnUse">
- <stop offset="0.0056" style="stop-color:#FFFFFF"/>
- <stop offset="0.0338" style="stop-color:#FAF2E9"/>
- <stop offset="0.1359" style="stop-color:#EAC59D"/>
- <stop offset="0.2271" style="stop-color:#DDA260"/>
- <stop offset="0.304" style="stop-color:#D48835"/>
- <stop offset="0.3637" style="stop-color:#CE791A"/>
- <stop offset="0.3989" style="stop-color:#CC7310"/>
- <stop offset="0.8258" style="stop-color:#872D00"/>
- </radialGradient>
- <path opacity="0.7" fill="url(#XMLID_7_)" stroke="#000000" d="M151.916,58.313c0,8.053-6.531,14.584-14.584,14.584 c-8.055,0-14.583-6.531-14.583-14.584c0-8.052,6.528-14.583,14.583-14.583C145.385,43.73,151.916,50.262,151.916,58.313z"/>
- <path opacity="0.8" fill="none" stroke="#FFFFFF" stroke-width="3" d="M134,49.5V67"/>
- <path opacity="0.8" fill="none" stroke="#FFFFFF" stroke-width="3" d="M140.5,49.5V67"/>
- </g>
- <g id="Button_Next">
- <radialGradient id="XMLID_9_" cx="164.1523" cy="49.4365" r="25.3111" fx="164.1523" fy="49.4365" gradientUnits="userSpaceOnUse">
- <stop offset="0.0056" style="stop-color:#FFFFFF"/>
- <stop offset="0.1137" style="stop-color:#D9D9D9"/>
- <stop offset="0.3443" style="stop-color:#8D8D8D"/>
- <stop offset="0.5502" style="stop-color:#505050"/>
- <stop offset="0.724" style="stop-color:#252525"/>
- <stop offset="0.8588" style="stop-color:#0A0A0A"/>
- <stop offset="0.9382" style="stop-color:#000000"/>
- </radialGradient>
- <path opacity="0.7" fill="url(#XMLID_9_)" stroke="#000000" d="M180.541,58.313c0,5.431-4.403,9.834-9.834,9.834 s-9.833-4.403-9.833-9.834c0-5.43,4.402-9.833,9.833-9.833S180.541,52.884,180.541,58.313z"/>
- <path opacity="0.8" fill="#FFFFFF" d="M175.037,58.389l-3.061-2.582l-3.06-2.584v5.166v5.167l3.06-2.584L175.037,58.389z"/>
- </g>
- <g id="Button_Last">
- <radialGradient id="XMLID_10_" cx="193.5273" cy="49.4365" r="25.3111" fx="193.5273" fy="49.4365" gradientUnits="userSpaceOnUse">
- <stop offset="0.0056" style="stop-color:#FFFFFF"/>
- <stop offset="0.1137" style="stop-color:#D9D9D9"/>
- <stop offset="0.3443" style="stop-color:#8D8D8D"/>
- <stop offset="0.5502" style="stop-color:#505050"/>
- <stop offset="0.724" style="stop-color:#252525"/>
- <stop offset="0.8588" style="stop-color:#0A0A0A"/>
- <stop offset="0.9382" style="stop-color:#000000"/>
- </radialGradient>
- <path opacity="0.7" fill="url(#XMLID_10_)" stroke="#000000" d="M209.916,58.313c0,5.431-4.403,9.834-9.834,9.834 s-9.833-4.403-9.833-9.834c0-5.43,4.402-9.833,9.833-9.833S209.916,52.884,209.916,58.313z"/>
- <path opacity="0.8" fill="#FFFFFF" d="M202.287,58.389l-3.061-2.582l-3.06-2.584v5.166v5.167l3.06-2.584L202.287,58.389z"/>
- <path opacity="0.8" fill="none" stroke="#FFFFFF" d="M203.306,53.389v10"/>
- </g>
- <g id="Button_Close">
- <path opacity="0.8" fill="none" stroke="#FFFFFF" pointer-events="all" d="M52.896,53.188H40.063V40.354h12.833V53.188z"/>
- <g opacity="0.8" pointer-events="none">
- <path fill="none" stroke="#FFFFFF" stroke-width="2" d="M42.623,50.628l3.856-3.857"/>
- <path fill="none" stroke="#FFFFFF" stroke-width="2" d="M50.338,42.915l-3.858,3.855"/>
- <path fill="none" stroke="#FFFFFF" stroke-width="2" d="M46.479,46.771l-3.856-3.855"/>
- <path fill="none" stroke="#FFFFFF" stroke-width="2" d="M46.479,46.771l3.858,3.857"/>
- </g>
- </g>
- </g>
- </svg><!--
- Copyright 2002, Adobe Systems Incorporated
- All Rights Reserved.
-
- NOTICE: All information contained herein is, and remains the property
- of Adobe Systems Incorporated and its suppliers, if any. The
- intellectual and technical concepts contained herein are proprietary
- to Adobe Systems Incorporated and its suppliers and may be covered by
- U.S. and Foreign Patents, patents in process, and are protected by
- trade secret or copyright law. Dissemination of this information or
- reproduction of this material is strictly forbidden unless prior
- written permission is obtained from Adobe Systems Incorporated.
- --><svg width="100%" height="100%" viewBox="0 0 707 516" onload="onLoadVideoScaler()" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/4.0/" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" zoomAndPan="magnify">
- <script id="VideoScaleScript" language="JavaScript1.2"><![CDATA[
-
- //-----------------------------------------------------------------------------
- function onLoadVideoScaler()
- {
- document.rootElement.addEventListener( "SVGResize", onResize, false )
-
- // Adjust the sizes of all video elements so that they display at their natural size.
-
- adjustVideoSizes(true);
- }
-
- //-----------------------------------------------------------------------------
- // Adjust the sizes of all video elements so that they display at their natural size.
- //
- function adjustVideoSizes(bFirstTime)
- {
- var videoList = document.getElementsByTagName('a:video');
- var uVideoCount = videoList.getLength();
- var uSpaceWidth;
- var uSpaceHeight;
- var uSpaceX;
- var uSpaceY;
- var i;
- for(i = 0; i < uVideoCount; i++)
- {
- var video = videoList.item(i);
- uDimensionX = video.getAttribute('pixelWidth');
- uDimensionY = video.getAttribute('pixelHeight');
- if((uDimensionX > 0) && (uDimensionY > 0))
- {
- // Determine what area is allocated for the video. Save it into spaceWidth/Height since
- // the width/height attributes will be replaced.
-
- if(bFirstTime)
- {
- uSpaceX = video.getAttribute('x');
- uSpaceY = video.getAttribute('y');
- uSpaceWidth = video.getAttribute('width');
- uSpaceHeight = video.getAttribute('height');
- video.setAttribute('spaceX', uSpaceX);
- video.setAttribute('spaceY', uSpaceY);
- video.setAttribute('spaceWidth', uSpaceWidth);
- video.setAttribute('spaceHeight', uSpaceHeight);
- }
- else
- {
- uSpaceX = video.getAttribute('spaceX');
- uSpaceY = video.getAttribute('spaceY');
- uSpaceWidth = video.getAttribute('spaceWidth');
- uSpaceHeight = video.getAttribute('spaceHeight');
- }
-
- // Use the inverse of the CTM to determine the user space dimensions of the video that
- // will let the video be drawn with the desired pixel dimensions
-
- var matrix = video.getScreenCTM().inverse();
- uDimensionX *= matrix.a;
- uDimensionY *= matrix.d;
-
- // If the desired pixel dimensions are larger than the allocated space, scale the video
- // image down to fit.
-
- if((uDimensionX > uSpaceWidth) || (uDimensionY > uSpaceHeight))
- {
- var fFractionFilledX = uDimensionX / uSpaceWidth;
- var fFractionFilledY = uDimensionY / uSpaceHeight;
-
- if(fFractionFilledX < fFractionFilledY)
- fFractionFilledX = fFractionFilledY;
- if(fFractionFilledX > 1.0)
- {
- uDimensionX /= fFractionFilledX;
- uDimensionY /= fFractionFilledX;
- }
- }
-
- video.setAttribute('width', uDimensionX);
- video.setAttribute('height', uDimensionY);
-
- // Adjust the x and y attributes to center the video image.
-
- var x = 1*uSpaceX + (uSpaceWidth - uDimensionX) / 2.0;
- var y = 1*uSpaceY + (uSpaceHeight - uDimensionY) / 2.0;
- video.setAttribute('x', x);
- video.setAttribute('y', y);
- video.setAttribute('preserveAspectRatio', 'none');
- }
- }
- }
-
- //-----------------------------------------------------------------------------
- function onResize()
- {
- adjustVideoSizes(false);
- }
-
- //-----------------------------------------------------------------------------
- ]]></script>
-
- </svg>
- </svg>